package com.lcc.myblog.pojo;

import lombok.Data;
import com.lcc.lynx.jdbc.pojo.TablePojo;
import com.lcc.lynx.jdbc.annotation.TableId;
import com.lcc.lynx.jdbc.annotation.FieldLabel;
import java.util.Date;
import com.lcc.lynx.jdbc.annotation.InsertRequired;
import java.util.List;

/** 
 * 文章管理实体
 * @auth lcc
 * @date 2025-08-17
 */
@Data
public class BkArticle extends TablePojo {

	/** 文章ID */
	@TableId
	@FieldLabel("文章ID")
	private Long articleId;

	/** 用户ID */
	@InsertRequired
	@FieldLabel("用户ID")
	private Long userId;

	/** 文章标题 */
	@InsertRequired
	@FieldLabel("文章标题")
	private String title;

	/** 文章摘要 */
	@FieldLabel("文章摘要")
	private String summary;

	/** 文章类型（说说，文章，转发） */
	@InsertRequired
	@FieldLabel("文章类型")
	private Short articleType;

	/** 主图 */
	@FieldLabel("主图")
	private String mainImage;

	/** 多媒体链接 */
	@FieldLabel("多媒体链接")
	private String mediaLink;

	/** 多媒体类型（图片，视频，音频） */
	@FieldLabel("多媒体类型")
	private Short mediaType;

	/** 文章状态（草稿，审核，正常，封禁） */
	@InsertRequired
	@FieldLabel("文章状态")
	private Short articleState;

	/** 浏览量 */
	@FieldLabel("浏览量")
	private Integer viewNum;

	/** 点赞数 */
	@FieldLabel("点赞数")
	private Integer likeNum;

	/** 点踩数 */
	@FieldLabel("点踩数")
	private Integer dislikeNum;

	/** 收藏数 */
	@FieldLabel("收藏数")
	private Integer favoriteNum;

	/** 转发数 */
	@FieldLabel("转发数")
	private Integer shareNum;

	/** 评论数 */
	@FieldLabel("评论数")
	private Integer commentNum;

	/** 合集 */
	@FieldLabel("合集")
	private String collection;

	/** 分类 */
	@FieldLabel("分类")
	private String category;

	/** 标签 */
	@FieldLabel("标签")
	private String tags;

	/** 发布时间 */
	@FieldLabel("发布时间")
	private Date publishTime;

	/** 创建时间 */
	@FieldLabel("创建时间")
	private Date createTime;

	/** 更新时间 */
	@FieldLabel("更新时间")
	private Date updateTime;

	/** 删除标记 */
	@FieldLabel("删除标记")
	private Short ifDelete;

	/** 是否公开 */
	@FieldLabel("是否公开")
	private Short ifPublic;

	/** 月度分区 */
	@FieldLabel("月度分区")
	private String monthPartition;

	/** 权重 */
	@FieldLabel("权重")
	private Integer weight;

	/** 转发文章ID */
	@FieldLabel("转发文章ID")
	private Long repostArticleId;

	public void setArticleIdInList(List<Long> articleIdList){ put("articleIdInList", articleIdList); }
	public void setTitleLike(String titleLike){ put("titleLike", titleLike); }
	public void setTitleLikeL(String titleLikeL){ put("titleLikeL", titleLikeL); }
	public void setArticleTypeInList(List<Short> articleTypeList){ put("articleTypeInList", articleTypeList); }
	public void setMediaTypeInList(List<Short> mediaTypeList){ put("mediaTypeInList", mediaTypeList); }
	public void setArticleStateInList(List<Short> articleStateList){ put("articleStateInList", articleStateList); }
	public void setCategoryInList(List<String> categoryList){ put("categoryInList", categoryList); }
	public void setPublishTimeStart(String publishTimeStart){ put("publishTimeStart", publishTimeStart); }
	public void setPublishTimeEnd(String publishTimeEnd){ put("publishTimeEnd", publishTimeEnd); }
	public void setCreateTimeStart(String createTimeStart){ put("createTimeStart", createTimeStart); }
	public void setCreateTimeEnd(String createTimeEnd){ put("createTimeEnd", createTimeEnd); }
	public void setUpdateTimeStart(String updateTimeStart){ put("updateTimeStart", updateTimeStart); }
	public void setUpdateTimeEnd(String updateTimeEnd){ put("updateTimeEnd", updateTimeEnd); }
}